/**
 * 加密工具函数
 */
const jwt = require('jsonwebtoken'); // 加密token
const jwtSecret = process.env.jwtSecret; // 密钥

module.exports = class Token {
  /**
   * 加密
   * @param {*} data  加密数据
   * @param {*} time  过期时间
   * @returns
   */
  static encrypt(data, key = '', time = Date.now() + 60 * 60 * 12) {
    return jwt.sign(data, key || jwtSecret, { expiresIn: time });
  }
  /**
   * 解密
   * @param {*} token
   * @returns
   */
  static decrypt(token) {
    try {
      let data = jwt.verify(token, jwtSecret);
      return {
        token: true,
        id: data.id
      };
    } catch (e) {
      return {
        token: false,
        data: e
      };
    }
  }
};
